一般來說,如果只有單一 Codespace,可以考慮與原來地端開發環境方式相同: 透過 ~/.bashrc 檔案中設定環境變數的值。這部分要注意 Codespace 生命週期:如果停止/重啟 codespace,此環境變數會維持設定;但如果重建 dev container 或刪除 code space 建立新的,檔案內容將重置,環境變數則不再保留。
此設定方式主要在遠端伺服器的 proecess 內使用 (包含 terminals 與 debugging sessions),但不能在容器內廣泛使用。設定方式為在 devcontainer.json 內使用 remoteEnv 進行設定,設定方法如下:
    {
        "remoteEnv": {
          "key": "value"
       }
    }
如果你使用自定義的 dev container,則可以在 dockerfile 內以新增 ENV VARNAME=value 來設定環境變數。當將此變更推送到 Repository 後重建容器或建立新的 Codespace 時生效。
本篇文章後面秘密管理會提到如何新增秘密。
 
 
如果是對於個人所有 Codespace,則可以使用 dotfiles Repository 中的檔案進行設定。例如,在 .bash_profile 檔案中加入 VARNAME=value。此方式所設定的環境變數是個人的,不會為其他任何人設定。
 
 
官方使用的環境變數參考如下 (節入置官方文件: https://docs.github.com/en/codespaces/developing-in-a-codespace/default-environment-variables-for-your-codespace)
| Environment variable | Description | 
|---|---|
| CODESPACE_NAME | codespace 名稱 | 
| CODESPACES | 在 code內總是為 true為 true | 
| GIT_COMMITTER_EMAIL | 未來 git commit 的「author」欄位的電子郵件。 | 
| GIT_COMMITTER_NAME | 未來 git commit 的「committer」欄位的名稱。 | 
| GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN | 傳回 GitHub Codespaces 轉送連接埠的網域. | 
| GITHUB_API_URL | 回傳 API URL. 如 https://api.github.com. | 
| GITHUB_GRAPHQL_URL | 回傳 GraphQL API URL. 如 https://api.github.com/graphql. | 
| GITHUB_REPOSITORY | 回傳 Owner 和 Repository 名稱. 如 octocat/Hello-World. | 
| GITHUB_SERVER_URL | 回傳 GitHub server URL . 如 https://github.com. | 
| GITHUB_TOKEN | 代表 Codespace 中的使用者的簽名身份驗證 Token。您可以使用它對 GitHub API 進行經過身份驗證的呼叫。 " | 
| GITHUB_USER | 啟動 Codespace 的使用者名稱 | 
 
 
 
使用者可以將開發環境所需的 Secret 新增至個人帳戶中 GitHub Codespace 設定內,像是開發過程中所需要的 Token 或 Service principals,使用者可以選擇哪些 Repository 有權存取每個 Secret。如果想要為目前正在運作中的 Codespace 建立 Secret 並使用,請在建立後重新啟動 Codespace。
使用時只需要透過 $變數名稱即可,如下圖所示:

 
 
 
 
你能在 Settings > Codespace > Secret 找到此功能

 
 
 
環境變數與秘密管理在開發與維運流程中重要的功能,可以依據不同的情境執行不同的任務,近年來其安全性也備受關注。因應開發與維運需求,GitHub Codespace 也具有這兩項功能。使用平台的好處在於是可以讓使用者專注於開發流程,無須花費太多時間在如何自己實作環境變數與秘密管理 。但也不是使用平台就絕對安全,完整裡解其功能與可能產生的風險是必須的。